Executing a business process by a standard business process engine

ABSTRACT

Executing a business process can include providing a context data object including a payload data structure for storing a payload data and automatically splitting an annotated context data object into one or more utility data objects. Responsive to creating a second utility data object, a pre-processing task can be injected into the business process, the pre-processing task using a copy of a first mapping to read data from the predefined data structure instance and to store the read data as payload data in the payload data structure of the first utility data object. Responsive to creating a third utility object, a post-processing task can be injected into the business process. The post-processing task can use a copy of the second mapping to write the payload data of the first utility data object to elements of a predefined data structure instance.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of European Patent ApplicationNumber 11162046.4 filed on Apr. 12, 2011, the entirety of which isincorporated herein by reference.

BACKGROUND

A common task in software engineering is the representation of processesof an enterprise, i.e., production processes or business processes in aprocess model. The task of business process modelling (BPM) is typicallyperformed by business process engineers who are familiar with thebusiness processes of an enterprise and are trained in improving processefficiency. A ‘process’ is a chain of events in an enterprise, e.g.,from purchase to supply or from manufacture to sales. Such events canalso be services provided by individual system components, also referredto as ‘resources’.

A common problem when using such a service in a business process is thatsaid predefined data structures are often proprietary and/or have beendeveloped for the particular requirements of said service. Instances ofsaid data structures acting as I/O interfaces of said services cantherefore often not be processed by a standard business process engine.

One solution to this problem is solely using a proprietary processlanguage and a corresponding runtime environment. This approach,however, limits the number of environments in which a service can behosted and limits the portability of service descriptions. Anotherapproach is to encode the details of the data exchange between theexecuted business process and a service within the business processplan. This is, however, problematic, if a once specified businessprocess plan needs to be ported to another technical platform, as abusiness process engineer is typically familiar with only a limitednumber of technical platforms acting as runtime environments for saidservices.

BRIEF SUMMARY

An embodiment can include a method of executing a business process by astandard business process engine. The method can include providing acontext data object annotated with mapping information, the context dataobject including a payload data structure for storing a payload data,and automatically splitting the annotated context data object using aprocessor into one or more utility data objects, each utility dataobject conforming to a standard data object definition. The one or moreutility data objects can include a first utility data object includingthe payload data structure, a second utility data object when thecontext data object is annotated with a first mapping, wherein thesecond utility data object includes a copy of the first mapping, and athird utility data object when the context data object is annotated witha second mapping, wherein the third utility data object includes a copyof the second mapping. Responsive to creating the second utility dataobject, a pre-processing task can be injected into a business process,wherein pre-processing task uses the copy of the first mapping to readdata from the predefined data structure instance and to store the readdata as payload data in the payload data structure of the first utilitydata object. Responsive to creating the third utility object, apost-processing task can be injected into the business process. Thepost-processing task can use the copy of the second mapping to write thepayload data of the first utility data object to elements of apredefined data structure instance.

Another embodiment can include a system. The system can include aprocessor configured to initiate executable operations of a businessprocess using a standard business process engine. The operations caninclude providing a context data object annotated with mappinginformation, the context data object including a payload data structurefor storing a payload data, and automatically splitting the annotatedcontext data object into one or more utility data objects, each utilitydata object conforming to a standard data object definition. The one ormore utility data objects can include a first utility data objectincluding the payload data structure, a second utility data object whenthe context data object is annotated with a first mapping, wherein thesecond utility data object includes a copy of the first mapping, and athird utility data object when the context data object is annotated witha second mapping, wherein the third utility data object includes a copyof the second mapping. Responsive to creating the second utility dataobject, a pre-processing task can be injected into a business process,wherein pre-processing task uses the copy of the first mapping to readdata from the predefined data structure instance and to store the readdata as payload data in the payload data structure of the first utilitydata object. Responsive to creating the third utility object, apost-processing task can be injected into the business process. Thepost-processing task can use the copy of the second mapping to write thepayload data of the first utility data object to elements of apredefined data structure instance.

Another embodiment can include a computer program product for executinga business process by a standard business process engine. The computerprogram product can include a computer readable storage medium havingstored thereon program code that, when executed, configures a processorto perform executable operations. The executable operations can includeproviding a context data object annotated with mapping information, thecontext data object including a payload data structure for storing apayload data, and automatically splitting the annotated context dataobject into one or more utility data objects, each utility data objectconforming to a standard data object definition. The one or more utilitydata objects can include a first utility data object including thepayload data structure, a second utility data object when the contextdata object is annotated with a first mapping, wherein the secondutility data object includes a copy of the first mapping, and a thirdutility data object when the context data object is annotated with asecond mapping, wherein the third utility data object includes a copy ofthe second mapping. Responsive to creating the second utility dataobject, a pre-processing task can be injected into a business process,wherein pre-processing task uses the copy of the first mapping to readdata from the predefined data structure instance and to store the readdata as payload data in the payload data structure of the first utilitydata object. Responsive to creating the third utility object, apost-processing task can be injected into the business process. Thepost-processing task can use the copy of the second mapping to write thepayload data of the first utility data object to elements of apredefined data structure instance.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The above and other items, features and advantages of the invention willbe better understood by reading the following more particulardescription of embodiments of the invention in conjunction with thefigures wherein:

FIG. 1 is a block diagram of a computer system operating a servicecontainer and a standard business process engine,

FIG. 2 depicts some elements of the service container in greater detail,

FIG. 3 illustrates the process of splitting an annotated context dataobject into three utility data objects and injecting three tasks beingbased on said three utility data objects,

FIG. 4 depicts the process of reading payload data from a predefineddata structure instance, and

FIG. 5 depicts the process of writing payload data into said predefineddata structure instance.

DETAILED DESCRIPTION

Embodiments of the invention are described herein after by way ofexamples with reference to the accompanying figures and drawings.

One or more embodiments of the present invention relate to the field ofcomputer implemented methods for executing a business process by astandard business process engine and, more particularly, to the field ofexchanging data between the business process and an instance of anarbitrary data structure.

It is an objective of embodiments of the invention to provide for acomputer-implemented method allowing data exchange between a businessprocess executed by a standard business process engine and an instanceof a data structure, whereby said data structure may be of an arbitraryformat, including proprietary data structures which are per se notinterpretable by said standard processing engine.

The term ‘payload data’ as used herein encompasses any kind of data thatis to be exchanged at execution time of a business process between saidbusiness process and a predefined data structure instance. Saidpredefined data structure may be, e.g., a hierarchical data structurerepresenting, e.g., a social network of users, or may be a datastructure acting as an I/O interface of a service called by the businessprocess. Exchanging data as used herein implies writing payload databeing generated and/or used by the business process to elements of saidpredefined data structure instance. In addition, or alternatively,exchanging data as used herein can also imply reading or receivingpayload data from said predefined data structure instance by thebusiness process, said payload data having being generated and/orprovided, e.g., by an external data resource of a service, by aninstance of a data structure representing a social network, or the like.

The term ‘business process engine’ as used herein encompasses any typeof asynchronous computer-implemented program being operable to execute abusiness process in accordance with a process definition and beingoperable to monitor the current state of executed business processes.Thereby, the term “business process” is to be understood in a verygeneric sense as any kind of process being executable by a businessprocess engine, e.g., a process modelling a business workflow, but alsocomputer-implemented representation of technical workflows,manufacturing workflows, sample handling workflows and the like. A‘process’ thereby is a sequence of tasks, each task including a set ofprogram instructions to be executed by a standard business processengine. Tasks which are already specified within the business processdefinition at deployment time of said business process definition arealso referred to as ‘original tasks’.

The term ‘business process definition’ as used herein is a specificationof one or more tasks to be executed by a standard business processengine, whereby the business process definition is specified in astandard conform business process language. Typically, a businessprocess definition is created by a business process engineer anddeployed into a runtime environment (RE) of a standard business processengine, the RE automatically creating a corresponding business processaccording to the deployed business process definition.

The term ‘standard business process engine’ as used herein refers to abusiness process engine which completely relies on standard businessprocess languages. Current standard business process languages are, forexample, BPMN (Business Process Model and Notation) or BPEL (BusinessProcess Execution Language).

A data structure is a way of representing data in acomputer-interpretable form according to a particular structure. Aninstance of a data structure can include elements, e.g., attributefields, according to said data structure, whereby each of said elementsmay have assigned a data value.

A ‘context data object’ is a data object which is used by a businessprocess executed by a standard business process engine to store itscontext data. The term ‘data object definition’ as used hereinencompasses any kind of computer-interpretable document specifying thestructure of a data object and its corresponding data object instances.An example of a data object definition is a schema for a database tableor an XML schema document. An XML schema is a description of a type ofXML document, typically expressed in terms of constraints on thestructure and content of documents of said type. The term ‘standard dataobject definition’ as used herein is a data object definition specifiedin accordance with a standard business process language such as, forexample, BPMN or BPEL and being therefore processable by a standardbusiness process engine.

The term ‘service’ as used herein encompasses any software systemdesigned to support interoperable machine-to-machine interaction betweentwo or more software and/or hardware modules, whereby the two or moreinteracting instances may be hosted on the same processing device or ontwo or more different processing devices connected via a network. Aservice may be any IT-Service, e.g., a Web-Service based on SOAP orother protocols. A service may also be provided by a change andconfiguration management system such as the Tivoli Change andConfiguration Management Database which is operable to manage one ormore cloud services. A cloud service is a collection of IT resources(e.g. servers, storage, network, software, etc.) provided to a customerover the internet. Typically, the operations performed by a change andconfiguration management system are based on a structural data model anda corresponding predefined data structure which can be used by abusiness process engine to exchange data with said configurationmanagement system.

A ‘predefined data structure definition’ as used herein is aspecification of the predefined data structure used by a service forexchanging data.

In one aspect, one or more embodiments of the invention relate to acomputer-implemented method for executing a business process by astandard business process engine and for enabling the business processto exchange payload data with an instance of a predefined datastructure,

-   -   whereby the payload data must conform to a standard data object        definition for being processable by the standard business        process engine,    -   whereby the standard data object definition does not include a        specification of the predefined data structure,    -   whereby an aspect of the computer-implemented method can include        the steps of:    -   providing a context data object, the context data object        including a payload data structure for storing the payload data,        -   whereby said context data object is annotated with a first            mapping and/or a second mapping,        -   whereby the first mapping connects elements of the            predefined data structure to elements of said payload data            structure,        -   whereby the second mapping connects elements of said payload            data structure to elements of said predefined data            structure, and        -   whereby the annotated context data object does not conform            to the standard data object definition,    -   automatically splitting said annotated context data object into        one or more utility data objects, each utility data object        conforming to said standard data object definition, the one or        more utility data objects including:        -   a first utility data object including the payload data            structure,        -   in case the context data object is annotated with the first            mapping, a second utility data object, whereby said second            utility data object includes a copy of the first mapping,            and        -   in case the context data object is annotated with the second            mapping, a third utility data object, whereby said third            utility data object includes a copy of the second mapping,    -   in case the second utility data object is created, injecting        into the business process a pre-processing task, the        pre-processing task using the copy of the first mapping to read        data from the predefined data structure instance and to store        the read data as payload data in the payload data structure of        the first utility data object,    -   in case the third utility data object is created, injecting into        the business process a post-processing task, the post-processing        task using the copy of the second mapping to write the payload        data of the first utility data object to elements of the        predefined data structure instance.

According to some embodiments, the context data object has assigned atleast the first or the second mapping, and at least two utility dataobjects are created accordingly.

In one beneficial aspect, embodiments of the invention thereby providefor a mechanism enabling any standard business process engine, i.e., abusiness process engine using a standardized process language, toexchange data with an arbitrary (e.g., proprietary) predefined datastructure instance of any arbitrary resource without having to adapt thestandard business process engine and/or the standard business processlanguage to said particular predefined data structure, although saidpredefined data structure does not conform to a standard businessprocess modelling language. In a further aspect, said embodimentsprovide for an annotation method for annotating standard businessprocess definitions with mapping information for enabling a standardbusiness process engine to exchange data with any kind of predefineddata structure instances.

In a further beneficial aspect, embodiments of the invention provide fora mechanism allowing the synchronization of standard business processdefinitions with a potentially complex predefined data structureinstance without requiring a process modeller to acquire in depthknowledge of the respective data structure. Accordingly, embodiments ofthe invention provide for a mechanism allowing modellers of businessplans to focus on process modelling, not on specifying special,platform-dependent tasks for exchanging data between the businessprocess and the services addressed by said business process. Forexample, the first and second mappings allow for the automated creationof tasks enabling the data exchange with the predefined data structureinstance, whereby said additional tasks can be executed by any standardbusiness process engine. As a consequence, a once specified businessprocess definition may be reused in a variety of different technicalplatforms.

According to embodiments, the first and/or second mappings are annotatedby a user, e.g., a business process engineer, by means of a graphicaltool, i.e., a software tool providing a graphical user interface whichenables a user to specify the mappings. The user annotates a contextdata object with the first and/or second mapping. The annotated dataobjects are part of the process definition which is deployed into the REbusiness process engine after having finished annotating. Duringdeployment, a pre-processing and/or a post-processing task are createdin dependence on the presence and content of said first and/or secondmapping (which determine the presence and content of the respectivecopies of the mappings) and are inserted into the business processdefinition of the business process. As a consequence, said first and/orsecond mappings provide at execution time of the standard businessprocess engine all information necessary for exchanging payload datahaving been stored to the payload data structure of the annotatedcontext data object with the predefined data structure instance.

Injecting a task into the business process may imply automaticallyadding or modifying tasks to be executed by the business process,whereby said added or modified tasks may be automatically adapted to theparticular requirements of the RE within which the services areexecuted.

According to embodiments, the predefined data structure is ahierarchical data structure whose nodes respectively represent resourcesused by a cloud service.

According to embodiments, the predefined data structure instance is aninstance of a schema. A schema as used herein is a specification of adata graph, e.g. an XML schema. Said schema can be specified, forexample, according to the Document Type Definition (DTD) language. Thisis advantageous, because XML documents and XML schemas can beinterpreted by a human reader as well as by a computer program easily.

According to embodiments, the predefined data structure acts as I/Ointerface of a service, whereby the predefined data structure instanceis an instance of a schema, said schema being processable by theservice. According to embodiments, said schema is an XML schema and canbe specified, for example, according to the Document Type Definition(DTD) language. Said schema may also be specified in a non-XML basedlanguage such as OWL or RDF.

According to further embodiments, the step of injecting a task into thebusiness process respectively includes inserting an additional taskspecification into a business process definition, the business processdefinition being a document including one or more task specifications,each task specification specifying a task to be executed by the standardbusiness process engine when the business process is executed. Accordingto embodiments, the business process definition is specified in BPMNand/or BPEL language. According to embodiments, the standard businessprocess engine is a program or program module being operable tointerpret and execute business processes only if said processes havebeen defined in BPMN and/or BPEL. Accordingly, the business process isan instance of a business process definition specified in BPMN and/orBPEL language.

According to embodiments, the payload data structure is an XML structuredefined by an XML schema definition and the standard data objectdefinition is specified according to the standard business processlanguage being used. According to further embodiments, the payload dataincludes or represents process context data, whereby process contextdata includes any data which is used, received and/or returned by thebusiness process during execution time for a particular business processinstance.

According to embodiments, the computer-implemented method furtherincludes the step of deploying a business process definition to aruntime environment within which said standard business process engineis executed, whereby the business process definition is a documentincluding one or more task specifications. The injection of thepre-processing task and/or the post-processing task is executed duringthe deployment of the business process definition. These features areadvantageous, because they allow to automatically add tasks to beexecuted by the standard business process engine by deploying thebusiness process definition to the runtime environment of the businessprocess. The automatically generated and/or injected tasks therebycomply with a standard business process language and can therefore beprocessed by said standard business process engine.

According to embodiments, the runtime-environment includes a processrewriting module, whereby the splitting of the annotated context dataobject and the injection of the pre-processing task and/or thepost-processing task is executed by the process rewriting module, andwhereby the process rewriting module is implemented as a separate modulewhich is interoperable with the standard business process engine andwhich can be reversibly installed as a component of the runtimeenvironment. A separate module of a RE is a component which addsadditional functionality to said RE. If said separate module is notinstalled, the RE is still operable to execute some or most of itsfunctions, but the RE may be operable to execute additional functions incase said component is installed. Said separate module may beimplemented as plug-in of said RE or as program module being executableindependently of the RE. Splitting the annotated context data objectinto utility data objects and injecting additional tasks in accordancewith the generated utility data objects is advantageous, as theannotated context data object includes first and/or second mappingsbetween elements of the payload data structure and the predefined datastructure and vice versa and does therefore not conform to the standardbusiness languages BPMN or BPEL. The context data object can thereforenot be processed by a standard business process engine. The utility dataobjects, to the contrary, can be generated by the process rewritingmodule in accordance with the standard business process languages,thereby allowing a standard business process engine being executed in aparticular proprietary runtime environment to exchange data with any(proprietary) predefined data structure.

According to embodiments, the process rewriting module is implemented asa module which is interoperable with the standard business processengine and which can be reversibly installed and deinstalled as anindependent component of the runtime environment.

This is advantageous, because the splitting and injecting steps areexecuted by one single module which can be implemented e.g. as a plug-inof the runtime environment or as any other independently maintainablepiece of program logic which is interoperable with said runtimeenvironment. Depending on the embodiment, the process rewriting modulecan be implemented in a multitude of different variants, each variantbeing particularly adapted for one particular, e.g. proprietary runtimeenvironment. Thereby each proprietary runtime environment is enabled tohost proprietary services which use proprietary predefined datastructures as I/O interfaces for exchanging data with a standardbusiness process. As a consequence, a process modeller does not have todevelop different business process definitions for each particularproprietary runtime environment. He rather can specify one singlebusiness process definition which can be deployed to a variety ofproprietary runtime environments. Provided that each proprietary runtimeenvironment has installed a corresponding variant of the processrewriting module, the business process deployed to each particularruntime environment is operable to exchange payload data with thepredefined (proprietary) data structure of said runtime environment,because tasks which provide for the data exchange functionality areautomatically created by said process rewriting module when deployingthe business process definition.

According to embodiments, the pre-processing task and/or thepost-processing task are created automatically by the process rewritingmodule during the deployment of the business process definition into theruntime environment by analyzing the business process definition.

The term ‘service container’ as used herein encompasses any runtimeenvironment within which one or more IT-services and/or a change andconfiguration management system are run. The service container providesfor services to be accessed by a standard business process engine. Aservice container may be, for instance, an IBM WebSphere e-businessplatform running a change and configuration management service, e.g.,IBM Tivoli. Alternatively or in addition, the services run by saidservice container can be, for example, IT-services such as conventionalWeb-services. According to embodiments, a service container provides aninterface for deploying a business process definition into said servicecontainer. During deployment of said business process definition, theservice container may modify the business process definition such thebusiness process being executed by the standard business process enginecan exchange payload data with the predefined data structure instance ofa service provided by said service container.

According to embodiments, the business process can include a pluralityof first tasks and the computer-implemented method further can includesteps to be executed by the process rewriting module. Said further stepscan include: automatically determining at least one of the plurality offirst tasks having assigned the context data object, using the at leastone determined first task as the original task for processing thepayload data, and creating the pre-processing task and/or thepost-processing task in dependence on the presence of the first and/orsecond mapping in the assigned context data object.

This is advantageous, because these embodiments allow interchanging datawith the predefined data structure instance without having specified thecorresponding tasks in the business process definition in advance. Forexample, the process rewriting module may analyze the instructionsand/or payload data being contained in the determined at least one firsttask and create the pre-processing and/or cost-processing task independence on a result of said analysis.

According to embodiments, the context data object is assigned to a task,i.e., the original task, manually by a user when specifying the tasks ofthe business process definition before deploying said business processdefinition into the RE. According to further embodiments, BPMN tools areused which analyze schemas of services to be associated with a businessprocess definition, automatically create one or more context dataobjects based on the result of said analysis, and display said contextdata objects via a GUI to a user for assigning said context data objectsto tasks specified in the business process definition. For example, allsignatures (i.e., input, output or fault parameters) of all tasksspecified in the business process definition may be detectedautomatically by analyzing the business process definition and acorresponding context data object can be automatically created. A usermay then assign the first and/or second mapping to said automaticallycreated context data objects.

According to embodiments, the runtime environment can include a mappingprocessor module for exchanging the payload data between said runtimeenvironment and the standard business process engine during executiontime of the business process, whereby the mapping processor module readsthe payload data from the predefined data structure by executing thesteps of:

-   -   analyzing the copy of the first mapping,    -   reading the payload data from the predefined data structure        instance, and    -   writing the read payload data into the payload data structure of        the first utility data object according to said analyzed copy of        the first mapping,    -   whereby the mapping processor module writes payload data of the        payload data structure to the predefined data structure by        executing the steps of:    -   analyzing the copy of the second mapping,    -   reading the payload data from the payload data structure of the        first utility data object, and    -   writing the read payload data into the predefined data structure        instance according to the said analyzed copy of the second        mapping.

Executing the reading and/or writing operation according to the analyzedmapping is advantageous, because all information required for exchangingthe payload data between the business process and the predefined datastructure is encapsulated in the first and/or second mapping which doesnot include any platform-dependent data, i.e., data depending on thetype of runtime environment used for operating the business process andthe services. The first and second mappings are abstractions from aparticular programming language, a particular business processdescription language or a particular predefined data structure, therebyallowing to separate the task of specifying a business processdefinition/executing a corresponding business process from the task ofexchanging payload data at runtime of said business process between saidbusiness process and the predefined data structure instance.

According to embodiments, the mapping processor module can beimplemented as a separate module which is interoperable with thestandard business process engine and which can be reversibly installedas a component of the runtime environment. If said separate module isnot installed, the runtime environment is still operable to execute someor most of its functions, but the RE may be operable to executeadditional functions in case said component is installed. Said separatemodule may be implemented as plug-in of said RE or as program modulebeing executable independently of the RE. This is advantageous, becausethe step of reading and/or writing data from and/or to the predefineddata structure instance may encompass additional processing steps beingparticularly to the runtime environment used. The reading and/or writingof payload data by a separate hardware and/or software module allowsimplementing said reading and/or writing operations in a way conformingto the structure of any proprietary predefined data structure and/or ina way conforming to the requirements of any proprietary servicecontainer. By providing an individually installable and/orde-installable mapping processor module being responsible for actuallyexecuting the reading and/or writing operations, it is possible to adaptset operations to the particular needs of each service container.

According to embodiments, the main function of the process rewritingmodule is to create additional tasks when the context data object isdeployed in dependence on the annotated mappings, and to inject saidtask into the business process, and to create utility data objects whichcan be used at execution time of the business process by the mappingprocessor module. According to embodiments, the main function of themapping processor module is to conduct the data exchange based on saidutility data objects at execution time of the business process.

According to embodiments, the first mapping maps one or more elements ofthe predefined data structure to one or more elements of the contextdata object, i.e., is an n:m mapping. This is advantageous, as it allowsreading data from a plurality of elements of said predefined datastructure instance.

According to embodiments, the second mapping maps one or more elementsof the context data object to one or more elements of the predefineddata structure, i.e., is an n:m mapping. This is advantageous, as itallows writing data from one single element of the payload datastructure to a plurality of elements of said predefined data structureinstance.

According to further embodiments, the computer-implemented methodfurther can include steps to be executed automatically at execution timeof the business process. Said further steps can include:

-   -   creating, for the original task, a first compensation task, the        first compensation task in operation undoing all effects of the        original task,    -   in case the pre-processing task was created, creating a second        compensation task, the second compensation task in operation        undoing all effects of the pre-processing task, and    -   in case the post-processing task was created, creating a third        compensation task, the compensation post-processing task in        operation undoing all effects of the post-processing task,    -   whereby each of the compensation tasks is executed by the        standard business process engine in case the corresponding        original, pre-processing and/or post-processing tasks was not        executed correctly.

For example, if during the execution of the pre-processing task anexception is thrown due to an error, the corresponding secondcompensation task is executed which reverses all changes introduced bythe pre-processing task. Said features are advantageous, because theyallow implementing an automated failure prevention and recoveryfunctionality which may include also complex instructions going beyondtypical failure recovery strategies based on throwing exceptions.

According to embodiments, the method further can include the step ofautomatically, at execution time of the business process, injecting oneor more maintenance tasks into the business process, each maintenancetask assisting in the maintenance of one or more IT services.

According to some embodiments, said compensation tasks and/ormaintenance tasks are created and injected by the process rewritingmodule. This is advantageous, because the error recovery functionalityprovided by said module and also the maintenance functionality can beadapted to the requirements of each particular (potentially proprietary)runtime environment.

According to some embodiments, the first and/or second mapping arespecified by means of a graphical user interface (GUI), whereby thecomputer-implemented method further includes the steps of receiving thebusiness process definition, the business process definition including aspecification of the predefined data structure; displaying, on said GUI,elements of the predefined data structure as first elements; receivingthe payload data structure; and displaying, on said GUI, elements of thepayload data structure as second elements, whereby the GUI provides auser with drag & drop functionality for connecting one or more of thefirst elements with one or more of the second elements, thereby mappingthe connected first and second elements to each other.

According to embodiments, the first and the second mappings can bespecified via an extension to the BPMN 2.0 language. The first mappingspecifies how to read payload data from the predefined data structure bythe standard business process and how to materialize the read values andassign them to elements of the payload data structure for furtherprocessing.

According to embodiments, the binding between the payload data structureand a particular business process can be established by creating, withinthe business process definition of said process, an assignment between atask specification of an original task of said business process and aparticular context data structure.

The binding between the predefined data structure and a particularbusiness process can be established by creating, within the businessprocess definition of said process, an assignment between said businessprocess and a particular service, the service being accessible via aninstance of the predefined data structure.

According to embodiments, the second mapping can specify how to writepayload data stored to the payload data structure of the first utilitydata object into the instance of the predefined data structure. In otherwords, the second mapping specifies how to write payload data beingcreated or provided by a task of a standard business process into aninstance of the predefined data structure.

Depending on each particular original task, only the first, only thesecond or both the first and the second mapping may be used forexchanging payload data between the standard business process and theinstance of the predefined data structure. To achieve this, elements ofthe predefined data structure and elements of a schema specifying thestructure of the payload data are mapped to each other. An ‘element’thereby can be, for example, an element of an XML document, includingalso XML attributes of XML elements. The structure of said XML basedpayload data structure may be specified in an XML schema document.

In a further aspect, one or more embodiments of the invention relate toa computer system including a processor and a non-transitory storagemedium, whereby the non-transitory storage medium includes machineexecutable instructions for execution by the processor. Executing theinstructions causes the processor to execute the steps of any one of theabove embodiments of the computer implemented method. As will beappreciated by one skilled in the art, the features of the abovementioned embodiments can be combined with each other. For example, aservice container may include a process rewriting module and a mappingprocessor module according to embodiments of the invention, whereby bothmodules are respectively implemented as individually installableplug-ins of the service container.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon. Anycombination of one or more computer readable medium(s) may be utilized.The computer readable medium may be a computer readable storage medium.A computer readable storage medium may be, for example, but not limitedto, an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer readable storage medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer readable medium may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing. Computer program code for carrying out operations for aspectsof the present invention may be written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Java, Smalltalk, C++ or the like and conventionalprocedural programming languages, such as the “C” programming languageor similar programming languages. The program code may execute entirelyon the user's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider). Aspects of the present invention are described below withreference to embodiments of the invention depicted in the figures. Itwill be understood that the block of the diagrams depicting as servicecontainer, as standard business process engine or other modules can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the blocks. These computer programinstructions may also be stored in a computer readable medium that candirect a computer, other programmable data processing apparatus, orother devices to function in a particular manner, such that theinstructions stored in the computer readable medium produce an articleof manufacture including instructions which implement the function/actspecified in said blocks of the diagrams. The computer programinstructions may also be loaded onto a computer, other programmable dataprocessing apparatus, or other devices to cause a series of operationalsteps to be performed on the computer, other programmable apparatus orother devices to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in said blocks.

FIG. 1 depicts a computer system 101 including a computer readable,non-transitory storage medium 102 and a processor 115. The processor,when executing instructions stored in the storage medium, operates astandard business process engine 108 and a service container 103. Theservice container includes several functional modules, e.g., an instancemanager 104 and a mapping processor module 107 whereby the particularcomposition of modules may depend on the particular service containerinstallation and the service container type. The instance manager module104 is responsible for instantiating predefined data structures based onpredefined data structure definitions, thereby creating one or morepredefined data structure instances 109-111. Each predefined datastructure definition may specify which data elements (e.g., informationabout IT resources, users, accounts and the like) will be used by aparticular service and may also specify how said data elements arerelated to each other, i.e., which kind of data generated by a firstobject (IT resource, user, account . . . ) is related to a second object(IT resource, user, account . . . ) for further processing. Saidpredefined data structure definition may also be a schema of apredefined data structure. The predefined data structure instances109-111 may act as I/O interfaces of one or more services 130-132provided by said service container.

The service container further includes a process of rewriting module 106which is operable to process a non-standard business process languageconform context data object, split said object into standard businessprocess language conform utility data objects and create additionaltasks based on said utility data objects. The process of creating tasksand injecting tasks into a standard business process is depicted ingreater detail in FIG. 3.

The service container 103 further includes a mapping processor module107 for analyzing first and second mappings for exchanging payload databetween a business process executed by the standard business processengine 108 and a predefined data structure instance 109 acting as I/Ointerface of a service 130. The details of a reading operation performedby said mapping processor module 107 are depicted in greater detail inFIG. 4. The details of a writing operation performed by said mappingprocessor module are depicted in greater detail in FIG. 5. The mappingprocessor module as well as the process rewriting module may be anintegral part of the service container 103. According to someembodiments, however, said modules are implemented as software moduleswhich are adapted to a particular service container and which can beinstalled as additional components, e.g., as plug-ins, of each softwarecontainer as needed. Therefore, said two modules 106 and 107 aredepicted with dotted borders.

FIG. 2 depicts the service container 103 and service 130 in greaterdetail. The standard business process engine 108 runs one or morestandard business processes 116-118. The service container operatesservice 130 which is being accessible via a predefined data structureinstance 109. The service 130 uses an instance 109 of the predefineddata structure for receiving payload data from one 116 of the standardbusiness processes 116-118 and/or for providing payload data to saidstandard business process. The structure and composition of thepredefined data structure instance 109 is specified by a schema 120. Theelements of said schema 120 (and, accordingly, the elements of thecorresponding predefined data structure instance 109) are depicted inFIG. 2 as black circles with a handle having a white interior area. Saidelements can be, for example XML elements, XML attributes or the like.According to other implementations, said schema is an RDF schema and theelements RDF elements. According to some embodiments, each executedstandard business process 116-118 is instantiated automatically by thestandard business process engine 108 based on a business processdefinition document.

FIG. 3 depicts the process rewriting module 106 and data structuresprocessed and/or created by said module in greater detail. The processrewriting module 106 receives a context data object 303 which includes apayload data structure 315. According to embodiments, said payload datastructure is specified by a payload data schema. Some of the elements ofsaid payload data structure may have assigned a data value. The elementsof said payload data structure 315 are depicted in FIG. 3 as blackcircles with a handle having a black interior area. Depending on whetherthe context data object 303 or its derivative utility data objects304-306 are used for executing a read and/or write operation on thepredefined data structure instance, data values assigned to elements ofthe payload data structure 315 may be read and/or overwritten. It isalso possible that no value is assigned to one or more elements of thepayload data structure 315 and that said payload data structure ismerely used as a container for receiving data from the predefined datastructure instance.

Context data object 303 is annotated with a first mapping 301 and/or asecond mapping 302. The first mapping connects elements of thepredefined data structure to elements of said payload data structure andthe second mapping connects elements of said payload data structure toelements of said predefined data structure.

According to some embodiments, the schema of the payload data structureis referenced in the context data object via a particular element of thepayload data, the itemSubjectRef attribute.

The second utility data object is only created if the context dataobject 303 was annotated with a first mapping. The second utility dataobject includes a copy of the first mapping, whereby the elements of thepredefined data structure are mapped to elements of the payload datastructure.

The third utility data object 306 is only created if the context dataobject was annotated with a second mapping. The third utility dataobject includes a copy 302′ of the second mapping, whereby the elementsof the payload data structure of the payload data structure are mappedto elements of the predefined data structure.

The process rewriting module automatically splits the annotated contextdata object 303 into utility data objects 304-306, whereby each utilitydata object conforms to said standard data object definition. The firstutility data object 305 includes the payload data structure 315. In casethe context data object was annotated with the first mapping 301, asecond utility data object 304 is automatically created. Said secondutility data object 304 includes a copy of the first mapping, referredin FIG. 3 as first mapping' 301′. First mapping 301′ maps elements ofthe predefined data structure to elements of the payload data structureof the first utility data object. In other words, said first mapping'includes an identifier of the first utility data object for referencingpayload data elements of the payload data structure of said firstutility data object.

An example of a copy 301′ of the first mapping being contained in thesecond utility data object 304 is given in the following. Based on thecopy 301′ of the first mapping, a value assigned to the MemorySizeelement of the DB2 element of the schema 120 of the predefined datastructure instance 109 can be copied to the reqBuffer element of thefirst utility data object “305_DO”. Similarly, the value assigned to theWasServerName element of the WAS element of the schema of the predefineddata structure will be read and copied to the serverName element of thepayload data contained in the 305_DO utility data object:

<dataObject id=“315_DO ” name=“315_DO”itemSubjectRef=“315_DODefinition”> <sdnp:TopologyMappingDefinition><sdnp:TopologyReadMappings> <sdnp:TopologyReadMapping><sdnp:NodeReference nodeReference=“DB2”/> <sdnp:ParameterMappingnodePropertyReference=“//MemorySize” parameterReference=“//reqBuffer”/></sdnp:TopologyReadMapping> <sdnp:TopologyReadMapping><sdnp:NodeReference nodeReference=“WAS”/> <sdnp:ParameterMappingnodePropertyReference=“//WasServerName”parameterReference=“//serverName”/> </sdnp:TopologyReadMapping></sdnp:TopologyReadMappings> </sdnp:TopologyMappingDefinition></dataObject>

The TopologyReadMapping element may contain multiple ParameterMappingelements for the same NodeReference element instance. This implies thatone TopologyReadMapping element can map multiple elements of thepredefined data structure to one particular element of the payload datastructure. As a result, the payload data structure of the context dataobject can be filled with data values having been derived from aplurality of predefined data structures.

The third utility data object 306 includes a copy of the second mapping,referred in FIG. 3 as copy 302′ of the second mapping. An example of acopy 302′ of the second mapping being contained in the third utilitydata object 306 is given in the following. The value assigned to thevolatileMemory element of the payload data structure 315 contained inthe first utility data object “305_DO” is written into the memorySizeelement of the WAS element of the predefined data structure instance.

<dataObject id=“315_DO” name=“315_DO” itemSubjectRef=“315_DODefinition”><sdnp:TopologyMappingDefinition> <sdnp:TopologyWriteMappings><sdnp:TopologyWriteMapping> <sdnp:NodeReference nodeReference=“WAS”/><sdnp:ParameterMapping nodePropertyReference=“//MemorySize”parameterReference=“//volatileMemory”/> <sdnp:ParameterMappingnodePropertyReference=“//WasServerName”parameterReference=“//serverName”/> </sdnp:TopologyWriteMapping></sdnp:TopologyWriteMappings> </sdnp:TopologyMappingDefinition></dataObject>

According to the depicted embodiment, the process rewriting module 106determines all tasks of a currently executed standard business processwhich exchange data with a predefined data structure instance. One ofthose tasks 308 is depicted in FIG. 3. Task 308 has assigned a contextdata object 303 as indicated by the dotted double-arrow. Said task isalso referred to as ‘original task’. Depending on whether the assignedcontext data object 303 is annotated with a first and/or a secondmapping, said task 308, also referred to as ‘original task’, isbracketed by a pre-processing task and/or a post processing task byautomatically executing the following steps: the context data object 303is split it into a first utility data object 305, a second utility dataobject 304 and/or a third utility data object 306. The first utilitydata object includes a copy 315′ of the payload data structure 315 ofthe context data object. The order in which the nodePropertyReferenceattribute and the parameter reference attribute of the ParameterMappingelement are considered is different in the first mappings and secondmappings.

The process rewriting module 106 further executes the step of injectinginto the business process a pre- and/or post-processing task. Theoriginal task for processing the payload data of the first utility dataobject is already part of the business process definition created by theprocess modeler (e.g., process engineer) when the business processdefinition is deployed and a corresponding business process isinstantiated.

In case the second utility data object was created, a pre-processingtask 307 is created and injected into the standard business process 116.Said pre-processing task can be used for reading data values from thepredefined data structure instance and for writing said read data valuesinto elements of the payload data of the first utility data objectaccording to the first mapping'. As the task 308 can access the payloaddata structure of the first utility data object, the data read by thepre-processing task is the input for the original task.

In case the third utility data object was created, the process rewritingmodule 106 creates a post-processing task 309 and injects saidpost-processing task into the standard business process 116. Saidpost-processing task can be used for writing data values being containedin the payload data structure of the first utility data object intoelements of the predefined data structure instance according to the copy302′ of the second mapping.

For instance, first and the second mapping may be implemented as amapping of XPath expression, whereby a first XPath expression isspecified for matching one or more elements of the payload datastructure 315 and a second XPath element is specified for matching oneor more elements of the predefined data structure instance 109. Themapping processor module, upon receiving the first 305 and the second304 utility data objects as input uses the first mapping 301′ of thesecond utility data object to match the first and second XPathexpressions against the payload data structure 315′ and the predefineddata structure instance 109, thereby copying the data of elements of thepredefined data structure instance to matching elements of the payloaddata structure 315′ in accordance with the first mapping 301′.

Upon receiving the first 305 and the third 306 utility data objects asinput, the mapping processor module uses the second mapping 302′ of thethird utility data object to match the first and second XPathexpressions against the payload data structure 315′ and the predefineddata structure instance 109, thereby copying the data of elements of thepayload data structure 315′ to matching elements of predefined datastructure in accordance with the first mapping 301′.

As a standard business process engine is not operable to process thecontext data object including the first and second mapping. Splittingsaid context data object into utility data objects respectivelyconforming to a standard business process language thus allows thestandard business process engine to exchange payload data with apredefined data structure instance of an arbitrary (proprietary) format.

The standard business process engine 108 runs a standard businessprocess 116 which includes, as a result of the injections step, apreprocessing task 307 and a post-processing task 309. The task 308,also referred to as ‘original task’, is not created by the processrewriting module as the task specification of the original task isalready part of the deployed process definition. FIGS. 4 and 5 in thefollowing depict in greater detail how said preprocessing task 307, theoriginal task 308 and the post-processing task 309 are respectivelyhandled by the business process engine according to embodiments of theinvention.

FIG. 4 depicts the process of reading payload data from a predefineddata structure instance. Said pre-processing task 307 of task 308accesses an interface (e.g., a proprietary interface) of the servicecontainer 103 for reading payload data from the predefined datastructure instance 109. Said predefined data structure instance 109 actsas I/O interface of a service 130. Data values being assigned toelements of the predefined data structure instance are read by themapping processor module 107 and are assigned and written into elementsof the payload data structure 315′ of the first utility data objectaccording to the copy 301′ of the first mapping of the second utilitydata object 304. The modification of the data values assigned toelements of the payload data of the first utility data object isdepicted in FIG. 4 by the hachure of nodes of the payload data structure315″ of the first utility data object 305. Accordingly, the first andthe second utility data objects 304, 305 are required as input forexecuting a reading operation, whereby the data content of the payloaddata structure of the first utility data object may be modified as aresult of the reading operation, as is expressed by the referencenumbers 315′→315″.

The modified first utility data object 305 can be used as input of theoriginal task 308, whereby the original task may execute furtherprocessing steps on the payload data structure 315″, thereby generatinga result which needs to be written back into a predefined data structureinstance 109. Depending on the implementation, said result may bewritten into the predefined data structure instance of the same oranother service or of any other data structure of an external middlewarecomponent. The writing process is depicted in greater detail in FIG. 5.

FIG. 5 depicts the process of writing payload data into said predefineddata structure instance 109. Task 308 produces output which shall bestored into the predefined data structure instance by using an interfaceof the service container, whereby said interface may be a proprietaryinterface. Writing said data through the proprietary interface by thestandard business process engine 108 is accomplished by means of thepost-processing task 309. The mapping processor module 107 uses the copy302′ of the second mapping of the third utility data object 306 formapping elements of the payload data structure 315″ of the first utilitydata object 305 to elements of the predefined data structure instance109. As a result, data values assigned to elements of said predefineddata structure instance 109 may be overwritten, thereby creating anupdated version 109′ of the predefined data structure instance(indicated in FIG. 5 by the hachure). As a result, service 130 hasreceived via its predefined data structure instance 109 the outputhaving been generated by task 308 via its proprietary interface,although said task 308 was executed by a standard business processengine being not operable to interpret said proprietary interface usedby service 130.

What is claimed is:
 1. A computer hardware system comprising: a memoryhaving stored therein program code; and a hardware processor configuredto execute the program code to initiate executable operations of abusiness process using a standard business process engine, theoperations comprising: providing a context data object annotated withmapping information, the context data object including a payload datastructure for storing a payload data; automatically splitting saidannotated context data object into one or more utility data objects,each utility data object conforming to a standard data objectdefinition, the one or more utility data objects including: a firstutility data object comprising the payload data structure; a secondutility data object when the context data object is annotated with afirst mapping, wherein said second utility data object comprises a copyof the first mapping; and a third utility data object when the contextdata object is annotated with a second mapping, wherein said thirdutility data object comprises a copy of the second mapping; responsiveto creating the second utility data object, injecting into a businessprocess a pre-processing task, the pre-processing task using the copy ofthe first mapping to read data from the predefined data structureinstance and to store the read data as payload data in the payload datastructure of the first utility data object; and responsive to creatingthe third utility object, injecting into the business process apost-processing task, the post-processing task using the copy of thesecond mapping to write the payload data of the first utility dataobject to elements of a predefined data structure instance.
 2. Thesystem of claim 1, wherein the payload data conforms to a standard dataobject definition for being processable by the standard business processengine; and wherein the standard data object definition does notcomprise a specification of the predefined data structure.
 3. The systemof claim 1, wherein said context data object is annotated with the firstmapping and the second mapping; wherein the first mapping connectselements of the predefined data structure to elements of said payloaddata structure; wherein the second mapping connects elements of saidpayload data structure to elements of said predefined data structure;and wherein the annotated context data object does not conform to thestandard data object definition.
 4. The system of claim 1, wherein thepredefined data structure instance is an instance of a schema.
 5. Thesystem of claim 1, wherein the predefined data structure instance actsas I/O interface of a service and wherein the predefined data structureis an instance of a schema, said schema being processable by theservice.
 6. A computer program product for executing a business processby a standard business process engine, said computer program productcomprising: a computer readable hardware storage device having storedthereon program code that, when executed, configures a processor toperform executable operations comprising: providing a context dataobject annotated with mapping information, the context data objectincluding a payload data structure for storing a payload data;automatically splitting said annotated context data object into one ormore utility data objects, each utility data object conforming to astandard data object definition, the one or more utility data objectsincluding: a first utility data object comprising the payload datastructure; a second utility data object when the context data object isannotated with a first mapping, wherein said second utility data objectcomprises a copy of the first mapping; and a third utility data objectwhen the context data object is annotated with a second mapping, whereinsaid third utility data object comprises a copy of the second mapping;responsive to creating the second utility data object, injecting into abusiness process a pre-processing task, the pre-processing task usingthe copy of the first mapping to read data from the predefined datastructure instance and to store the read data as payload data in thepayload data structure of the first utility data object; and responsiveto creating the third utility object, injecting into the businessprocess a post-processing task, the post-processing task using the copyof the second mapping to write the payload data of the first utilitydata object to elements of a predefined data structure instance, whereinthe computer readable storage device is not a transitory, propagatingsignal per se.
 7. The computer program product of claim 6, wherein thepayload data conforms to a standard data object definition for beingprocessable by the standard business process engine; and wherein thestandard data object definition does not comprise a specification of thepredefined data structure.
 8. The computer program product of claim 6,wherein said context data object is annotated with the first mapping andthe second mapping; wherein the first mapping connects elements of thepredefined data structure to elements of said payload data structure;wherein the second mapping connects elements of said payload datastructure to elements of said predefined data structure; and wherein theannotated context data object does not conform to the standard dataobject definition.
 9. The computer program product of claim 6, whereinthe predefined data structure instance is an instance of a schema. 10.The computer program product of claim 6, wherein the predefined datastructure instance acts as I/O interface of a service and wherein thepredefined data structure is an instance of a schema, said schema beingprocessable by the service.